package com.hiwan.system.util;

import java.io.BufferedReader;  
import java.io.BufferedWriter;  
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;  
import java.io.FileReader;  
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;  
import java.util.ArrayList;  
import java.util.List;  
  
/**    
 * CSV操作(导出和导入) 
 * 
 * @author wjm 
 * @version 1.0 Nov 24, 2015 4:30:58 PM    
 */  
public class CSVUtils {  
      
//<span style="white-space:pre">    </span>
/** 
     * 导出 
     *  
     * @param file csv文件(路径+文件名)，csv文件不存在会自动创建 
     * @param dataList 数据 
     * @return 
     */  
    public static boolean exportCsv(File file, List<String> dataList){  
        boolean isSucess=false;  
          
        FileOutputStream out=null;  
        OutputStreamWriter osw=null;  
        BufferedWriter bw=null;  
        try {  
//          OutputStreamWriter in_=new OutputStreamWriter(new FileOutputStream("文件名"), "gbk");  
            out = new FileOutputStream(file);  
            osw = new OutputStreamWriter(out, "gbk");  
            bw =new BufferedWriter(osw);  
            if(dataList!=null && !dataList.isEmpty()){  
                for(String data : dataList){  
                    bw.append(data).append("\r");  
                }  
            }  
            isSucess=true;  
        } catch (Exception e) {  
            isSucess=false;  
        }finally{  
            if(bw!=null){  
                try {  
                    bw.close();  
                    bw=null;  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }   
            }  
            if(osw!=null){  
                try {  
                    osw.close();  
                    osw=null;  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }   
            }  
            if(out!=null){  
                try {  
                    out.close();  
                    out=null;  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }   
            }  
        }  
          
        return isSucess;  
    }  
      
    /** 
     * 导入 
     *  
     * @param file csv文件(路径+文件) 
     * @return 
     */  
    public static List<String> importCsv(File file){  
        List<String> dataList=new ArrayList<String>();  
          
        BufferedReader br=null;  
        try {   
        	InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");
        	br = new BufferedReader(isr);
//            br = new BufferedReader(new FileReader(file));  
            String line = "";   
            while ((line = br.readLine()) != null) {   
                dataList.add(line);  
            }  
        }catch (Exception e) {  
        }finally{  
            if(br!=null){  
                try {  
                    br.close();  
                    br=null;  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
   
        return dataList;  
    }  
}  
